package au.com.acpfg.xml.writer; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.knime.core.data.DataColumnSpec; import org.knime.core.node.defaultnodesettings.DefaultNodeSettingsPane; import org.knime.core.node.defaultnodesettings.DialogComponentBoolean; import org.knime.core.node.defaultnodesettings.DialogComponentColumnNameSelection; import org.knime.core.node.defaultnodesettings.DialogComponentNumber; import org.knime.core.node.defaultnodesettings.DialogComponentString; import org.knime.core.node.defaultnodesettings.SettingsModelBoolean; import org.knime.core.node.defaultnodesettings.SettingsModelColumnName; import org.knime.core.node.defaultnodesettings.SettingsModelIntegerBounded; import org.knime.core.node.defaultnodesettings.SettingsModelString; import org.knime.core.node.util.ColumnFilter; import au.com.acpfg.xml.reader.XMLCell; /** * <code>NodeDialog</code> for the "XMLWriter" Node. * Saves XMLcell's to disk as separate XML documents. * * This node dialog derives from {@link DefaultNodeSettingsPane} which allows * creation of a simple dialog with standard components. If you need a more * complex dialog please derive directly from * {@link org.knime.core.node.NodeDialogPane}. * * @author Andrew Cassin */ public class XMLWriterNodeDialog extends DefaultNodeSettingsPane { protected XMLWriterNodeDialog() { super(); addDialogComponent(new DialogComponentColumnNameSelection(new SettingsModelString(XMLWriterNodeModel.CFGKEY_XML_COL, "XML Data"), "XML Column", 0, true, false, new ColumnFilter() { @Override public boolean includeColumn(DataColumnSpec colSpec) { if (colSpec != null && colSpec.getType().equals(XMLCell.TYPE)) { return true; } return false; } @Override public String allFilteredMsg() { return "No XML columns available for selection!"; } })); createNewGroup("Filename conventions"); final SettingsModelBoolean sb_use_rowid = new SettingsModelBoolean(XMLWriterNodeModel.CFGKEY_USE_ROWID, true); final SettingsModelString sb_basename = new SettingsModelString(XMLWriterNodeModel.CFGKEY_BASENAME, "document"); sb_basename.setEnabled(!sb_use_rowid.getBooleanValue()); addDialogComponent(new DialogComponentString(new SettingsModelString(XMLWriterNodeModel.CFGKEY_EXTN, ".xml"), "Filename extension")); addDialogComponent(new DialogComponentBoolean(sb_use_rowid, "Use Row ID?")); addDialogComponent(new DialogComponentString(sb_basename, "Basename")); sb_use_rowid.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent arg0) { sb_basename.setEnabled(!sb_use_rowid.getBooleanValue()); } }); createNewGroup("Save XML files to folder..."); addDialogComponent(new DialogComponentString(new SettingsModelString(XMLWriterNodeModel.CFGKEY_FOLDER, "c:/temp"), "Folder to save to...")); } }